package org.KeyCrafter.obj.type;

import java.util.Iterator;
import java.util.Map;

public interface HashType extends Encoded{

    /* 将给定的 field-value 对添加到 hash 中，
     * 如果 field 已经存在，那么删除旧的值，并关联新值。
     * 返回 0 表示元素已经存在，这次函数调用执行的是更新操作。
     * 返回 1 则表示函数执行的是新添加操作。
     */
    int set(Object field, Object value);

    /* 取出和 field 相对应的值。
     *
     * 成功找到值时返回实际值，没找到返回 null 。
     */
    Object get(Object field);

    // 迭代器
    Iterator<Map.Entry> iterator();
}
